home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN001
- Boolean BOOLEAN002
- Boolean BOOLEAN003
- Boolean BOOLEAN004
- Integer INTEGER001
- Integer INTEGER002
- Integer INTEGER003
- Integer TINTEGER004(9)
- Integer INTEGER005
- Integer INTEGER006
- Integer INTEGER007
- Integer INTEGER008
- Integer INTEGER009
- Integer TINTEGER010(9)
- Integer TINTEGER011(9)
- String STRING001
- String STRING002
- String TSTRING003(10)
- String TSTRING004(9)
- String TSTRING005(2)
- String STRING006
- String STRING007
- String TSTRING008(9)
- String TSTRING009(100)
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String TSTRING014(33)
- String STRING015
- String STRING016
- String STRING017
- String STRING018
- String STRING019
-
- ;------------------------------------------------------------------------------
-
- StartDisp 1
- TSTRING005(0) = "ProMatrix v1.0 by ViGilante [PWA] "
- TSTRING005(1) = "<UNREGISTERED>"
- TSTRING005(2) = " ,A=Up ,Z=Down <CR>=Choice"
- STRING010 = "■ " + Left(TSTRING005(0), 9) + ": "
- STRING001 = "@X08 ■ Via " + TSTRING005(0) + "■"
- STRING018 = "ulas"
- STRING019 = "drz" + Chr(9)
- STRING002 = TSTRING005(0) + TSTRING005(1) + TSTRING005(2)
- For INTEGER008 = 1 To Len(STRING002)
- INTEGER007 = INTEGER007 + Asc(Mid(STRING002, INTEGER008, 1))
- Next
- If (INTEGER007 <> 6066) Hangup
- FOpen 1, PPEPath() + "promat.cnf", 0, 0
- For INTEGER008 = 1 To 10
- FGet 1, TSTRING003(INTEGER008)
- Next
- FClose 1
- STRING012 = Upper(ReadLine(PCBDat(), 2) + ReadLine(PCBDat(), 94))
- FClose -1
- INTEGER006 = 1
- For INTEGER008 = 1 To Len(STRING012) Step 2
- INTEGER006 = Left(INTEGER006 * Asc(Mid(STRING012, INTEGER008, 1)), 6)
- Next
- If (TSTRING003(1) == INTEGER006) BOOLEAN004 = 1
- FOpen 1, PPEPath() + "strings.dat", 0, 0
- For INTEGER008 = 1 To 33
- FGet 1, TSTRING014(INTEGER008)
- Next
- FClose 1
- For INTEGER008 = -2 To Right(Time(), 1)
- INTEGER007 = 1 + Random(TSTRING003(2) - 1)
- Next
- FOpen 1, PPEPath() + "matrix" + String(INTEGER007) + ".cnf", 0, 0
- :LABEL001
- If (BOOLEAN001) Goto LABEL002
- FGet 1, TSTRING004(INTEGER001)
- FGet 1, STRING016
- FGet 1, TSTRING008(INTEGER001)
- If (TSTRING008(INTEGER001) == "") Then
- BOOLEAN001 = 1
- Else
- Tokenize STRING016
- TINTEGER010(INTEGER001) = GetToken()
- TINTEGER011(INTEGER001) = GetToken()
- TINTEGER004(INTEGER001) = GetToken()
- FGet 1, STRING016
- Inc INTEGER001
- Endif
- Goto LABEL001
- :LABEL002
- FClose 1
- If ((Time() > ToTime(TSTRING003(8))) && (Time() < ToTime(TSTRING003(9)))) Then
- INTEGER005 = 30
- Gosub LABEL021
- Newline
- INTEGER005 = 31
- Gosub LABEL021
- InputStr " _", STRING011, 0, 25, Mask_Pwd(), 0
- Newline
- If (Lower(STRING011) <> Lower(TSTRING003(7))) Then
- OpText TimeAp(TSTRING003(9))
- INTEGER005 = 32
- Gosub LABEL021
- BOOLEAN003 = 1
- BOOLEAN002 = 1
- Goto LABEL003
- Endif
- INTEGER005 = 33
- Gosub LABEL021
- :LABEL003
- Newline
- Wait
- Endif
- :LABEL004
- If (BOOLEAN003) Goto LABEL017
- DispFile PPEPath() + "matrix" + String(INTEGER007) + ".pcb", 0
- AnsiPos 1, 1
- INTEGER008 = Random(5) + 1
- Print "@X" + String(INTEGER008) + "F" + TSTRING005(0)
- If (BOOLEAN004) Goto LABEL005
- Print "@X" + I2S(INTEGER008 + 8, 16) + "F" + TSTRING005(1)
- Goto LABEL006
- :LABEL005
- Print Space(Len(TSTRING005(1)))
- :LABEL006
- Print "@X" + String(INTEGER008) + "F" + TSTRING005(2)
- STRING006 = ""
- INTEGER002 = 0
- Gosub LABEL018
- While (STRING006 <> Chr(13)) Do
- STRING006 = Left(Lower(Inkey()), 1)
- If (InStr(STRING019, STRING006) <> 0) Then
- Gosub LABEL019
- Inc INTEGER002
- If (INTEGER002 == INTEGER001) INTEGER002 = 0
- Gosub LABEL018
- Continue
- Endif
- If (InStr(STRING018, STRING006) <> 0) Then
- Gosub LABEL019
- Dec INTEGER002
- If (INTEGER002 == -1) INTEGER002 = INTEGER001 - 1
- Gosub LABEL018
- Endif
- EndWhile
- Color 7
- STRING011 = ""
- STRING007 = ""
- STRING002 = ScrText(1, 1, 34, 0)
- If (STRING002 <> TSTRING005(0)) Hangup
- Select Case (Lower(TSTRING004(INTEGER002)))
- Case "logon"
- If (Upper(TSTRING003(3)) <> "NONE") Then
- INTEGER005 = 1
- Cls
- Gosub LABEL021
- InputStr " _", STRING011, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(STRING011) == Upper(TSTRING003(3))) Then
- INTEGER005 = 3
- Gosub LABEL021
- BOOLEAN003 = 1
- Else
- INTEGER005 = 2
- Gosub LABEL021
- Inc INTEGER003
- Log STRING010 + "Failed Logon, tried (" + STRING011 + ")", 0
- Endif
- Gosub LABEL020
- Else
- BOOLEAN003 = 1
- Endif
- Case "apply"
- INTEGER005 = 4
- Cls
- Gosub LABEL021
- InputStr " _", STRING007, 0, 25, Mask_Pwd(), 0
- Newline
- If (STRING007 <> "") Then
- INTEGER009 = U_RecNum(Upper(STRING007))
- If (INTEGER009 < 1) Then
- If (Exist(PPEPath() + "carpet.red")) Then
- FOpen 1, PPEPath() + "carpet.red", 0, 0
- :LABEL007
- If (Ferr(1)) Goto LABEL008
- FGet 1, STRING016
- If (Upper(STRING016) == Upper(STRING007)) TSTRING003(4) = "NONE"
- Goto LABEL007
- :LABEL008
- FClose 1
- Endif
- If (Upper(TSTRING003(4)) == "NONE") Then
- INTEGER005 = 7
- Gosub LABEL021
- Gosub LABEL020
- BOOLEAN003 = 1
- KbdStuff STRING007 + Chr(13)
- Goto LABEL009
- Endif
- INTEGER005 = 6
- Gosub LABEL021
- InputStr " _", STRING011, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(STRING011) == Upper(TSTRING003(4))) Then
- INTEGER005 = 9
- Gosub LABEL021
- Gosub LABEL020
- BOOLEAN003 = 1
- KbdStuff STRING007 + Chr(13)
- Goto LABEL009
- Endif
- INTEGER005 = 8
- Gosub LABEL021
- Inc INTEGER003
- Log STRING010 + "Failed Apply, tried (" + STRING011 + ")", 0
- Gosub LABEL020
- :LABEL009
- Goto LABEL010
- Endif
- INTEGER005 = 5
- Gosub LABEL021
- Gosub LABEL020
- Endif
- :LABEL010
- Case "check"
- INTEGER005 = 10
- Cls
- Gosub LABEL021
- InputStr " _", STRING007, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(TSTRING003(3)) <> "NONE") Then
- If (STRING007 <> "") Then
- INTEGER009 = U_RecNum(Upper(STRING007))
- If (INTEGER009 < 1) Then
- INTEGER005 = 11
- Gosub LABEL021
- Inc INTEGER003
- Log STRING010 + "Failed Check, tried (" + STRING007 + ")", 0
- Gosub LABEL020
- Goto LABEL013
- Endif
- INTEGER005 = 12
- Gosub LABEL021
- InputStr " _", STRING011, 0, 12, Mask_Pwd(), 1
- Newline
- GetAltUser INTEGER009
- If (Upper(STRING011) == Upper(U_Pwd)) Then
- If (U_Sec < TSTRING003(5)) Then
- INTEGER005 = 14
- Gosub LABEL021
- Gosub LABEL020
- If (Lower(TSTRING003(10)) == "yes") Then
- KbdStuff STRING007 + Chr(13)
- BOOLEAN003 = 1
- Endif
- Goto LABEL011
- Endif
- OpText Upper(TSTRING003(3))
- INTEGER005 = 15
- Gosub LABEL021
- Newline
- INTEGER005 = 17
- Gosub LABEL021
- InputYN " _", STRING017, 7
- Newline
- If (STRING017 == YesChar()) Then
- KbdStuff STRING007 + Chr(13)
- BOOLEAN003 = 1
- Goto LABEL011
- Endif
- Inc INTEGER003
- :LABEL011
- Goto LABEL012
- Endif
- INTEGER005 = 13
- Gosub LABEL021
- Inc INTEGER003
- Log STRING010 + "Failed Check, tried (" + STRING007 + "," + STRING011 + ")", 0
- Gosub LABEL020
- :LABEL012
- PutUser
- Endif
- :LABEL013
- Else
- INTEGER005 = 16
- Gosub LABEL021
- Gosub LABEL020
- Endif
- Case "feedback"
- OpText ReadLine(PCBDat(), 2)
- FClose -1
- Cls
- INTEGER005 = 21
- Gosub LABEL021
- Newline
- INTEGER005 = 22
- Gosub LABEL021
- InputStr " _", STRING007, 0, 25, Mask_Pwd(), 0
- Newline
- If (STRING007 <> "") Then
- INTEGER005 = 23
- Gosub LABEL021
- InputStr " _", STRING015, 0, 25, Mask_Pwd(), 0
- Newline
- If (STRING015 <> "") Then
- OpText TSTRING003(6)
- INTEGER005 = 24
- Gosub LABEL021
- Newline
- INTEGER005 = 25
- Gosub LABEL021
- Newline
- INTEGER002 = 1
- STRING017 = YesChar()
- BOOLEAN001 = 0
- :LABEL014
- If (BOOLEAN001) Goto LABEL016
- TSTRING009(INTEGER002) = ""
- InputStr "_", TSTRING009(INTEGER002), 0, 78, Mask_Pwd(), 512
- Newline
- If (Lower(TSTRING009(INTEGER002)) == "/s") Then
- BOOLEAN001 = 1
- Newline
- INTEGER002 = 1
- FCreate 1, PPEPath() + "feedback." + String(PcbNode()), 1, 3
- While (Lower(TSTRING009(INTEGER002)) <> "/s") Do
- FPutLn 1, TSTRING009(INTEGER002)
- Inc INTEGER002
- EndWhile
- FPutLn 1, ""
- FPutLn 1, STRING001
- FClose 1
- Message 0, Upper(ReadLine(PCBDat(), 2)), Upper(STRING007), STRING015, "R", 0, 0, 0, PPEPath() + "feedback." + String(PcbNode())
- FClose -1
- Delete PPEPath() + "feedback." + String(PcbNode())
- INTEGER005 = 26
- Gosub LABEL021
- Gosub LABEL020
- Goto LABEL015
- Endif
- If (Lower(TSTRING009(INTEGER002)) == "/a") Then
- BOOLEAN001 = 1
- Newline
- INTEGER005 = 27
- Gosub LABEL021
- Gosub LABEL020
- Endif
- :LABEL015
- Inc INTEGER002
- Goto LABEL014
- Endif
- Endif
- :LABEL016
- Case "logoff"
- INTEGER005 = 28
- Cls
- Gosub LABEL021
- BOOLEAN003 = 1
- BOOLEAN002 = 1
- Case Else
- Cls
- DispStr TSTRING004(INTEGER002)
- StartDisp 1
- Gosub LABEL020
- End Select
- Goto LABEL004
- :LABEL017
- If (BOOLEAN002) Bye
- StartDisp 2
- End
- :LABEL018
- STRING013 = ScrText(TINTEGER010(INTEGER002), TINTEGER011(INTEGER002), TINTEGER004(INTEGER002), 1)
- AnsiPos TINTEGER010(INTEGER002), TINTEGER011(INTEGER002)
- Print TSTRING008(INTEGER002)
- AnsiPos TINTEGER010(INTEGER002), TINTEGER011(INTEGER002)
- Return
- :LABEL019
- AnsiPos TINTEGER010(INTEGER002), TINTEGER011(INTEGER002)
- Print STRING013
- Return
- :LABEL020
- Newline
- Wait
- If (INTEGER003 == 3) Then
- Newline
- DispStr TSTRING014(29)
- Newline
- BOOLEAN003 = 1
- BOOLEAN002 = 1
- Endif
- Return
- :LABEL021
- DispStr TSTRING014(INTEGER005)
- StartDisp 1
- Return
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 1 End
- ; 6 Cls
- ; 2 Wait
- ; 1 Color
- ; 72 Goto
- ; 89 Let
- ; 6 Print
- ; 48 If
- ; 1 DispFile
- ; 1 FCreate
- ; 4 FOpen
- ; 8 FClose
- ; 7 FGet
- ; 3 FPutLn
- ; 4 StartDisp
- ; 2 Hangup
- ; 1 PutUser
- ; 1 Delete
- ; 4 Log
- ; 9 InputStr
- ; 1 InputYN
- ; 46 Gosub
- ; 4 Return
- ; 9 Inc
- ; 1 Dec
- ; 21 Newline
- ; 1 Tokenize
- ; 4 KbdStuff
- ; 1 Bye
- ; 4 OpText
- ; 3 DispStr
- ; 4 AnsiPos
- ; 1 Message
- ; 1 GetAltUser
- ;
- ;
- ; ■ Functions used :
- ;
- ; 5 -
- ; 1 *
- ; 60 +
- ; 2 -
- ; 19 ==
- ; 13 <>
- ; 9 <
- ; 5 <=
- ; 1 >
- ; 10 >=
- ; 41 !
- ; 11 &&
- ; 5 ||
- ; 5 Len(
- ; 12 Lower()
- ; 17 Upper()
- ; 2 Mid()
- ; 3 Left()
- ; 2 Right()
- ; 1 Space()
- ; 1 Ferr()
- ; 6 Chr()
- ; 2 Asc()
- ; 2 InStr()
- ; 2 Random()
- ; 4 Time()
- ; 1 TimeAp()
- ; 2 YesChar()
- ; 1 Inkey()
- ; 7 String()
- ; 9 Mask_Pwd()
- ; 4 PCBDat()
- ; 9 PPEPath()
- ; 3 PcbNode()
- ; 4 ReadLine()
- ; 3 GetToken()
- ; 1 Exist()
- ; 1 I2S()
- ; 2 U_RecNum()
- ; 2 ScrText()
- ; 2 ToTime()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : WRBdH
- ;
- ; W - Write user ■ 5
- ; Program writes a user record. Although this may be normal for a
- ; User Editor, it may also be a way to modify an account level.
- ; ■ Search for : PUTUSER
- ;
- ; R - Read user ■ 5
- ; User records are read, this may signify that someone wants to get
- ; various informations about a user (for example his password), but
- ; this may also be normal for a program accessing user records (for
- ; example a User Editor)
- ; ■ Search for : GETALTUSER
- ;
- ; B - Brute hangup ■ 1
- ; Program hangup without notification. This may be a good way to
- ; disconnect a user, but if used randomly, may be very nasty
- ; ■ Search for : HANGUP, DTROFF
- ;
- ; d - Access PCBOARD.DAT ■ 2
- ; Program gets the full pathname to PCBOARD.DAT, this may be usefull
- ; for many PPE so they can find various informations on the system
- ; (system paths, max number of lines in messages, ...) but it may also
- ; be a way to gather vital informations.
- ; ■ Search for : PCBDAT()
- ;
- ; H - Read Password or Password History ■ 5
- ; Program is reading the user's password or last password history
- ; This may be ok for a password manager, but it is very suspect. Check!
- ; ■ Search for : U_PWDHIST, U_PWD
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 5 For/Next
- ; 2 While/EndWhile
- ; 24 If/Then or If/Then/Else
- ; 1 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-